A GUI is an important part of most software applications. The GUI is often the principal or only mechanism by which a user can provide input to and receive output from the software application with which the GUI is associated. It is therefore essential that the GUI operate correctly and efficiently for the successful operation of the associated software application, making thorough testing of the GUI imperative in most cases. Testing of any software may be a time consuming process, but this is particularly true for GUI testing. The GUI must be tested over all potential platforms, often including numerous client-server combinations. GUI testing also often requires a human tester to enter numerous commands to simulate mouse-clicks, keyboard inputs, or other operations of actual users, and to thereafter verify that the GUI produces the expected results. Not only is this process time-consuming and labor-intensive, it is also subject to human error. The difficulties involved in executing GUI tests can jeopardize quality, as associated software applications are often subject to very aggressive release schedules. Any of these or other disadvantages may make previous software GUI testing techniques inadequate for many needs.